#!/usr/bin/perl
# Bkpconf2 - Derivado do bkpconf originalmente escrito por Andre Viegas 
# Changes:  Aceita nome de arquivos extensos em dirs ( /bla/bla/bla/bla.txt )
#                    Aceita multiplos arquivos de uma soh vez 
#                    Ficou menos user-friendly ...nao emprime msgs de erro , bahh..
#                    que mensagens ha para _mostrar_ ...

unless ($#ARGV >= 0) { usage() } ;

bkpconf(@ARGV) ;
exit; 

sub usage {
print "Usage:\n $0  <arq1 path> <arq2 path> <arqN path>\n" ;
exit;
}

sub bkpconf {
             
                
                foreach $file (@_) { 
                        chomp $file ;     
                         if ($file =~ /(\S+\/)(\S+$)/){
                                 chdir $1 ;            
                                 $file = $2 ;
                        }                   
                 
                         unless ( -d "$file.bkp" )  {    
                                    mkdir "$file.bkp", oct("0755");
                        }                                         
                        if ( -d "$file.bkp" ) {
                             my $hoje = `date +%Y%m%d`;
                             chop $hoje ;              
                             my $ver = 0;    
                             while ( -e "$file.bkp/$file.$hoje.$ver" ) { 
                                 $ver++;                            
                             }       
                        system("cp $file $file.bkp/$file.$hoje.$ver");
                        if ( -e "$file.bkp/$file.$hoje.$ver" ) {
                                print "Backup of $file done !\n";
                        }else{
                                print "Houston, we got some problems !!\n"; 
                        }
                        
                        }
                }
}
